package net.lab1024.sa.admin.module.business.wms.stock.domain.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.time.LocalDateTime;
import lombok.Data;

/**
 * 库存预警规则表 实体类
 *
 * @Author ADog
 * @Date 2025-09-20 16:13:18
 * @Copyright 1.0
 */

@Data
@TableName("wms_stock_warn_rule")
public class StockWarnRuleEntity {

    /**
     * 规则ID（主键）
     */
    @TableId(type = IdType.AUTO)
    private Long ruleId;

    /**
     * 物料ID（关联t_core_material表，指定该规则适用的物料）
     */
    private Long materialId;

    /**
     * 预警类型：1=低库存预警，2=临期预警，3=过期预警，4=高库存预警
     */
    private Integer warnType;

    /**
     * 预警阈值（根据预警类型动态定义）：
- 低/高库存：数值（如“100”表示100个/kg，需与物料单位一致）
- 临期预警：天数（如“15”表示过期前15天触发预警）
- 过期预警：固定填“0”（无需阈值，过期即触发）
     */
    private String warnThreshold;

    /**
     * 规则是否启用：0=禁用（暂不生效），1=启用（参与预警判断）
     */
    private Integer isEnabled;

    /**
     * 规则创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /**
     * 规则更新时间（修改时自动更新）
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    /**
     * 规则备注（如“2024年Q4调整：高筋面粉低库存阈值从80kg改为100kg”）
     */
    private String remark;

}
